//剑指offer题6：把一个数组最开始的若干元素搬到数组的末尾，我们称之为数组的旋转。输入一个非递减排序的数组的一个
////              旋转，输出旋转数组的最小元素。eg.数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转，该数组的最小值为1.
////              (注，数组给出的所有元素都大于0，若数组大小为0，则返回0)
////     思路：从头开始遍历，若发现下一个数比当前要小，那么下一个数一定是最小的数)
#include<iostream>
using namespace std;
#include<vector>
int MinNumberInRotateArray(vector<int> arr)
{
	if (arr.empty())return 0;//数组大小为0时
		
	size_t i = 0;
	for (; i < arr.size() - 1; ++i)
	{
		if (arr[i] > arr[i + 1])
			break;
	}
	
	return i == arr.size() - 1 ? arr[0] : arr[i + 1];
}
int main()
{
	int tmp[] =  { 3, 4, 5, 6, 1, 2 };
	vector<int> arr(sizeof(tmp)/sizeof(tmp[0]));
	int index = 0;
	for(;index < arr.size() ;++index)
		arr[index] = tmp[index];
	cout << MinNumberInRotateArray(arr) << endl;

	return 0;
}
